package model.classesDAO;

import java.util.List;

import javax.persistence.TypedQuery;

import model.classe.Receita;
import model.interfaceDAO.IReceitaDAO;

public class ReceitaDAO extends GenericoDAO<Receita> implements IReceitaDAO{

	@Override
	public void cadastrar(Receita entidade) {
		if(!this.entityManager.getTransaction().isActive())
			this.entityManager.getTransaction().begin();
		this.entityManager.persist(entidade);
		this.entityManager.getTransaction().commit();
		
	}

	@Override
	public void alterar(Receita entidade) {
		if(!this.entityManager.getTransaction().isActive())
			this.entityManager.getTransaction().begin();
		this.entityManager.persist(entidade);
		this.entityManager.getTransaction().commit();
		
	}

	@Override
	public void remover(Receita entidade) {
		if(!this.entityManager.getTransaction().isActive())
			this.entityManager.getTransaction().begin();
		this.entityManager.remove(entidade);
		this.entityManager.getTransaction().commit();
		
	}

	@Override
	public Receita pesquisarID(Receita entidade) {
		if(!this.entityManager.getTransaction().isActive());
		this.entityManager.getTransaction().begin();
		TypedQuery<Receita> r = this.entityManager.createQuery("SELECT r FROM Receitai r WHERE id = " + entidade.getId(), Receita.class);
		Receita receita= r.getSingleResult();
		return receita;
	}

	@Override
	public List<Receita> pesquisarTodos() {
		if(!this.entityManager.getTransaction().isActive())
			this.entityManager.getTransaction().begin();
		TypedQuery<Receita> r = this.entityManager.createQuery("SELECT r FROM Receita r ORDER BY nome ASC", Receita.class);
		List<Receita> receitas = r.getResultList();
		return receitas;	
		}

}
